package br.com.universidade.managebean;

import java.io.Serializable;
import java.util.ArrayList;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import br.com.universidade.bean.Aluno;
import br.com.universidade.dao.AlunoDao;

@ManagedBean(name="alunoMB")
@RequestScoped
public class AlunoMB implements Serializable{
	private static final long serialVersionUID = 1L;
	private Aluno aluno;
	
	private ArrayList<Aluno> alunos;
	
	public AlunoMB(){
		this.aluno = new Aluno();
		AlunoDao alunoDao = new AlunoDao();
		try {
			ArrayList<Aluno> alunosTemp = (ArrayList<Aluno>)alunoDao.findAll(Aluno.class);
			this.alunos =alunosTemp;
		} catch (Exception e) {
			e.printStackTrace();
		}
		//this.alunos = new ArrayList<Aluno>();
	}
	
	
	public Aluno getAluno() {
		return aluno;
	}

	public void setAluno(Aluno aluno) {
		this.aluno = aluno;
	}
	
	public String salvar(){
		AlunoDao alunoDao = new AlunoDao();
		try {
			if(getAluno().getId() != 0){
				alunoDao.update(getAluno());
			}
			alunoDao.save(this.aluno);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return listar();
	}

	public String abrirConsultaAlunos(){
		return "listaAlunos";
	}

	public String listar(){
		AlunoDao alunoDao = new AlunoDao();
		try {
			ArrayList<Aluno> alunosTemp = (ArrayList<Aluno>)alunoDao.findAll(Aluno.class);
			setAlunos(alunosTemp);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "/pages/listarAluno.jsf";
	}
	
	public String openCadastro(){
		return "/pages/cadAluno.jsf";
	}
	
	public String deletar(Aluno aluno){
		AlunoDao alunoDao = new AlunoDao();
		try {
			alunoDao.deletar(aluno);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return listar();
	}
	
	public String abrirEdicao(Aluno aluno){
		setAluno(aluno);
		return openCadastro();
	}


	public ArrayList<Aluno> getAlunos() {
		return alunos;
	}


	public void setAlunos(ArrayList<Aluno> alunos) {
		this.alunos = alunos;
	}
	
}
